finp$="bitpack.txt"
nteb=0:octb=3:alnts=10
scle$="X.X.XX.X.X.X"

if argc>2 then:finp$=argv(2):end if
'if argc>3 then:nteb=val(argv(3)):end if
'if argc>4 then:octb=val(argv(4)):end if
'if argc>5 then:alnts=val(argv(5)):end if
'if argc>6 then:scle$=argv(6):end if

stf=(octb*12)+nteb
dim ffs[256]

function nttfrqnte$(nte)
  e$=   "C-1C#1D-1D#1E-1F-1F#1G-1G#1A-1A#1B-1"
  e$=e$+"C-2C#2D-2D#2E-2F-2F#2G-2G#2A-2A#2B-2"
  e$=e$+"C-3C#3D-3D#3E-3F-3F#3G-3G#3A-3A#3B-3"
  e$=e$+"C-4C#4D-4D#4E-4F-4F#4G-4G#4A-4A#4B-4"
  e$=e$+"C-5C#5D-5D#5E-5F-5F#5G-5G#5A-5A#5B-5"
  e$=e$+"C-6C#6D-6D#6E-6F-6F#6G-6G#6A-6A#6B-6"
  e$=e$+"C-7C#7D-7D#7E-7F-7F#7G-7G#7A-7A#7B-7"
  e$=e$+"B-7B-7B-7B-7B-7B-7B-7B-7B-7B-7B-7B-7"
  e$=e$+"B-7B-7B-7B-7B-7B-7B-7B-7B-7B-7B-7B-7..."
  tmq=nte-11
  if tmq<1 then:tmq=1:end if
  if tmq>97 then:tmq=97:end if
  return mid$(e$,(tmq*3)-2,3)
  end function

cct=0:sct=0
while sct<=31
  if mid$(scle$+"............",(cct mod 12)+1,1)<>"." then
    ffs[sct]=stf+cct:sct+=1
    end if
  cct+=1
  end while
print "org.tildearrow.furnace - Pattern Data (112)":print "0"
i=0:odn1=0:odn2=0
open finp$ for input as #1
while eof(1)=0
  odn2=odn1:odn1=i:i=readbyte(1) mod alnts
  if rnd(50)<40 then:
    print nttfrqnte$(ffs[i])+"00......|"
  else
    print nttfrqnte$(ffs[i])+"00......|"+nttfrqnte$(ffs[odn1])+"00......|"+nttfrqnte$(ffs[odn2])+"00......|"
    end if
  if rnd(50)<25 then:print "...........|":end if
  end while
close #1

'----------------------------------------------
'- "inspired" on langorhythm
'----------------------------------------------

'-church modes
' scle$="X.X.XX.X.X.X" '- ionian
' scle$="X.XX.X.X.XX." '- dorian
' scle$="XX.X.X.XX.X." '- phrygian
' scle$="X.X.X.XX.X.X" '- lydian
' scle$="X.X.XX.X.XX." '- mixolydian
' scle$="X.XX.X.XX.X." '- aeolian
' scle$="XX.X.XX.X.X." '- locrian

'-------

' scle$="X.XX...XX..." '- Hirajoshi, Traditional Japanese '- c d d+ g g+
' scle$="XX..XX.XX..X" '- Double Harmonic, Persian, Byzantine, Gypsy '- c c+ e f g g+ b
' scle$="XX.XX.X.X.X." '- Super Locrian '- c c+ d+ e f+ g+ a+
' scle$="XX.X.X.XX..X" '- Neopolitan Minor '- c c+ d+ f g g+ b
' scle$="XX.X.X.X.X.X" '- Neopolitan Major '- c c+ d+ f g a b 
' scle$="XX.XXX.XX.XX" '- Moorish Phrygian '- c c+ d+ e f g g+ a+ b
' scle$="X.X.X.X.X.XX" '- Leading Whole Tone '- c d e f+ g+ a+ b
' scle$="X.X.X.XXX.X." '- Lydian Minor '- c d e f+ g g+ a+
' scle$="XX...XX...X." '- Iwato - c c# f f# a# - https://www.chordsscales.com/scales/guitar/type/iwato 
' scle$="X.X.X.X...X." '- Prometheus '- c d e f+ a+
' scle$="X.X..X.X.XX." '- Piongio '- c d f g a a+
' scle$="XX...X.X.X.." '- Scriabin '- c c+ f g a 
' scle$="X.X..X.X..X." '- Egyptian, Madhyamavati '-  c d f g a+
' scle$="X.XX...X.X.." '- Kumoi '- c d d+ g a
' scle$="X.XXX.XXXX.X" '- 9 Tone' c d d+ e f+ g g+ a b 
' scle$="X.XX..XXX.X." '- Hungarian Gypsy '- c d d+ f+ g g+ a+ 
' scle$="X.XXX..XXX.." '- 3rd mode of Pantuvarali '- c d d+ e g g+ a 
' scle$="XX.X.X.X.XX." '- Javaneese '- c c+ d+ f g a a+ 
' scle$="X.XX..XXX..X" '- Algerian '- c d d+ f+ g g+ b  
' scle$="X..X..X..X.." '- Diminished (thirds) '- c d+ f+ a 
' scle$="X..XX.XXXX.." '- Rasikapriya '- c d# e f# g g# a
' scle$="X..X.XXX..X." '- Blues '- c d+ f f+ g a+ 
' scle$="XX..XX..XX.." '- Six Tone Symmetrical '- c c+ e f g+ a
' scle$="XX.XX.X.XX.." '- Ultra Locrian '- c c+ d+ e f+ g+ a
' scle$="X.X.X.X.X.X." '- Whole Tone '- c d e f# g# a#
' scle$="XXXXXXXXXXXX" '- Chromatic '- c c+ d d+ e f f+ g g+ a a+ b
' scle$="X...XX.X...X" '- Okinawa  '- c e f g b
' scle$="X.XX..XXX..X" '- Hungarian Minor '- c d d+ f+ g g+ b
' scle$="X.X.XXX.X.X." '- Locrian Major '- c d e f f+ g+ a+
' scle$="X.X.XX.XX.X." '- Acoustic, Hindustan, Charukesi '- c d e f g g+ a+ 
' scle$="X.X..X.X.X.." '- Ritusen '- c d f g a 
' scle$="XX.XX.XX.XX." '- Auxiliary Diminished Blues, Diminished (half/whole) '- c c+ d+ e f+ g a a+
' scle$="X.XX.XX.XX.X" '- Arabian, Diminished (whole/half) '- c d d+ f f+ g+ a b
' scle$="XX..XX.XX.X." '- Phrygian Major, Jewish, Gypsy (variation) '- c c+ e f g g+ a+
' scle$="X.XX.X.XX.X." '- Ethiopian, Minor '- c d d+ f g g+ a+
' scle$="XX.XXXX.X.X." '- Spanish 8 Tone '- c c+ d+ e f f+ g+ a+
' scle$="X..X.XXX..XX" '- 7 Tone Blues '- c d+ f f+ g a+ b
' scle$="X.XX...X.X.X" '- Hawaiian '- c d d+ g a b 
' scle$="X...X.XX...X" '- Chinese '- c e f+ g b 
' scle$="XX..X.X.X.XX" '- Enigmatic '- c c+ e f+ g+ a+ b
' scle$="XX..X.XXX..X" '- Pantuvarali '- c c+ e f+ g g+ b
' scle$="XXX..X.XXX.X" '- Kanakangi '- c c+ d f g g+ a
' scle$="X.XX..XX.XX." '- Romanian Minor '- c d d+ f+ g a a+
' scle$="XX.X...XX..." '- Balenesian, Pelog '- c c+ d+ g g+ 
' scle$="X.X.X.XX.XX." '- Lydian Dominant, Overtone '- c d e f+ g a a+
' scle$="X.XX.X.XX..X" '- Harmonic Minor, Mohammedan '- c d d+ f g g+ b
' scle$="XX..XXX..XX." '- Oriental '- c c+ e f f+ a a+
' scle$="X..X.X.X..X." '- Minor Pentatonic '- c d+ f g a+
' scle$="X.X.X..X.X.." '- Major Pentatonic '- c d e g a 
' scle$="XX..XX.X.X.X" '- Suryakantham '- c c+ e f g a b
' scle$="X.XXX..XX.X." '- 3rd mode of Suryakantham '- c d d+ e g g+ a+ 
' scle$="X.XX.X.X.X.X" '- Melodic Minor (ascending) '- c d d+ f g a b
' scle$="X.XX.X.XX.X." '- Melodic Minor (descending) '- c d d+ f g g+ a+ 
' scle$="X.XX.X.XXXXX" '- Melodic Minor (whole) '- c d d+ f g g+ a a+ b
' scle$="X..XXX.X..XX" '- Chalanata '- c d+ e f g a+ b
' scle$="X...X.X..X.X" '- Hindol '- c e f+ a b 
' scle$="XX..X.X..X.X" '- Marva '- c c+ e f+ a b 
' scle$="X.X...XX...X" '- Multani (ascending) '- c d f+ g b
' scle$="XX.X..XXX..X" '- Multani (descending) '- c c+ d+ f+ g g+ b
' scle$="XXXX..XXX..X" '- Multani (whole) '- c c+ d d+ f+ g g+ b
' scle$="XX.X..XXX..X" '- Todi '- c c+ d+ f+ g g+ b 

' 0  1  2  3  4  5  6  7  8
' g  g+ a  a+ b  c  c+ d  d+
' d  d+ e  f  f+ g  g+ a  a+
' a  a+ b  c  c+ d  d+ e  f

' 0  1  2  3  4  5  6  7  8
' e  e  f  f+ g  g+ a  a+ b
' b  c  c+ d  d+ e  f  f+ g
' g  g+ a  a+ b  c  c+ d  d+ 
' d  d+ e  f  f+ g  g+ a  a+
' a  a+ b  c  c+ d  d+ e  f
' e  f  f+ g  g+ a  a+ b  c

' scle$="X.X...XXX..." - 'c d f+ g g+ '- ?
' scle$="X...XX...X.X" - c e f a b    '- ?

